package com.projet.glb2r.DAO;

import java.util.ArrayList;

import com.projet.glb2r.Base_et_Provider.BaseProjet;
import com.projet.glb2r.Base_et_Provider.Provider;
import com.projet.glb2r.Base_et_Provider.TableAssoceFactProduit;
import com.projet.glb2r.Base_et_Provider.TableClient;
import com.projet.glb2r.Base_et_Provider.TableProduit;
import com.projet.glb2r.Objet.ObjetProduit;

import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;

public class DAOAssoceFactProduit {

	private final String ROWID = "ROWID";
	public void insererAssociationProduitsFacture(ArrayList<Integer> listeIdProduitsFactures, ContentResolver contentresolver){
		for(int i=0; i<listeIdProduitsFactures.size(); i++ ){  // Utiliser les iterator
			insert(listeIdProduitsFactures.get(i), contentresolver);
		}
//		private boolean existeProduit
	
	}
	


	private void insert(int idProdFact, ContentResolver contentresolver) {
		ContentValues values = new ContentValues();
		//String query = "select rowid from tableproduit where nom = \""+produit.getNom()+"\"";
		values.put(TableAssoceFactProduit.KEY_FACTURE, getDernierIdFacture(contentresolver));
		values.put(TableAssoceFactProduit.KEY_PRODUITSACHETES, idProdFact); 
		contentresolver.insert(Provider.CONTENT_URI_ASSOCEFACTUREPRODUITS, values);
	}

	private int getDernierIdFacture(ContentResolver contentResolver) {
		Cursor cursor = contentResolver.query(Provider.CONTENT_URI_FACTURE, new String[]{ROWID}, null, null, null);
		int idFacture = cursor.getCount();
		cursor.close();
		return idFacture;
	}



	//****************************** A TERMINERR !!!!!!!!!!!!


	public void delete(ContentResolver contentResolver) {
		String id = "diouf";
		System.out.println("Client deleted with nom: " + id);
		contentResolver.delete(Provider.CONTENT_URI_CLIENT, TableClient.KEY_NOMCLIENT
				+ " = ' " + id + " ' and "+ TableClient.KEY_TELEPHONE + "= 4444", null);
	}




	public ArrayList<ObjetProduit> getProduits() {
		ArrayList<ObjetProduit> tabProduit = new ArrayList<ObjetProduit>();

		Cursor cursor = BaseProjet.readable().query(TableProduit.getFtsVirtualTable(),
				new String [] {ROWID, TableProduit.KEY_PRIX, TableProduit.KEY_TVA}, null, null, null, null, null);

		cursor.moveToFirst();
		while (!cursor.isAfterLast()) {
			ObjetProduit produit = cursorToProduit(cursor);
			tabProduit.add(produit);
			cursor.moveToNext();
		}
		// Make sure to close the cursor
		cursor.close();
		return tabProduit;
	}

	private ObjetProduit cursorToProduit(Cursor cursor) {
		ObjetProduit produit = new ObjetProduit();
		produit.setIdProduit(cursor.getInt(0));
		produit.setNom(cursor.getString(1));
		produit.setPrix(cursor.getDouble(2));
		produit.setTva(cursor.getDouble(3));
		return produit;
	}

}
